Fingerprint matching device and method, recording medium, and program

ABSTRACT

The present invention relates to a fingerprint collation apparatus and method, a recording medium and a program, which can increase the throughput of fingerprint collation and decrease a data amount therefor. An information processing apparatus characterized by first detection means for detecting from a fingerprint image first feature points which include one of ridge bifurcations and ridge endings of a fingerprint; first generation means for generating a triangle which connects three arbitrary points close to one another from among the plurality of first feature points; first calculation means for calculating an area and a length of each side of the triangle generated by the first generation means; and storage means for storing the area and the length of each side of the triangle calculated by the first calculation means.

TECHNICAL FIELD

The present invention relates to a fingerprint collation apparatus andmethod, a recording medium and a program and, more particularly, to afingerprint collation apparatus and method, a recording medium and aprogram for reducing the volume of data to be stored.

BACKGROUND ART

A fingerprint collation apparatus which reads the fingerprint of afinger of a user, verifies the fingerprint and authenticates the user isapplied to various apparatuses.

As examples of techniques for reading a finger's fingerprint andregistering the fingerprint, there are, for instance, a so-calledminutiae method and a pattern matching method.

In the minutiae method, during the registration of a fingerprint to beread, for example, a fingerprint image is first binarized and thinned,and feature points such as ridge endings and ridge bifurcations areextracted from the thinned image. Then, a predetermined number of pixelsare traced along a thin line from a feature point and this tracedsection is extracted as a partial thin line, and this partial thin lineis converted to a sequence of approximate segments. This operation isrepeated as to a predetermined number of feature points, so that asequence of segments made of a continuation of a plurality of segmentsis extracted. In such manner, the fingerprint image is converted to thesequence of segments, and the coordinates of points at the opposite endsof each of the segments and the coordinates of positions at each ofwhich one of the segments is joined to the adjacent are registered. Inaddition, if a feature point is a ridge bifurcation, a similar processis repeated as to each of three branched thin lines. Furthermore, thenumber of ridges which intersect lines each connecting the opposite endsof different partial thin lines are calculated and registered on thebasis of the kinds and the coordinates of partial thin lines, thinnedimages and feature points (refer to Japanese Patent Laid-OpenApplication No. 1-50175 (hereinafter referred to as Patent Document 1),for example).

In addition, in the collation of a fingerprint by the minutiae method,after a fingerprint image is binarized and thinned, feature amounts areextracted first. Then, a thin line close in position to one of theregistered partial thin lines is selected from the obtained thinnedimage, the patterns of both are compared and if a degree of mismatch isequal to a certain threshold or lower, it is determined that both arethe same. In addition, this alignment is sequentially executed as to thefeature points of the image subject to collation, and each time a matchis found, the alignment of both is performed. The other partial thinlines are shifted by the amount of shifting at this time, and a similarcomparison is performed on each of the partial thin lines. Furthermore,the number of intersecting ridges is calculated from the thinned imagesubject to collation, and this number is compared with the registerednumber of intersecting ridges and if the rate of matching is equal orhigher than a predetermined value, it is determined that authenticationhas succeeded (refer to, for example, Patent Document 1).

In addition, in the pattern matching method, the whole or part of afingerprint image is stored as a registered template.

However, in the pattern matching method, because the whole or part of afingerprint image is stored as a registered template, the size of theregistered template is large and a memory capacity corresponding to thislarge size is necessary, so that the problem of slow throughput occurs.

In addition, if an acquired fingerprint image is rotated (for example,upside down), the fingerprint image is not easy to collate, so that theproblem of insufficient accuracy occurs.

Furthermore, the minutiae method (refer to, for example, PatentDocument 1) makes use of information indicative of the number of ridgesbetween feature points in addition to information indicative of thepositions, the directions and the kinds of the individual feature points(for example, ridge bifurcations and ridge endings), in order toincrease authentication accuracy on the basis of the number of theridges between the features points. In other words, in this method aswell, if authentication accuracy is to be increased, a certain degree oftemplate size becomes necessary. Accordingly, the minutiae method stillhas the problems of slow throughput, large data amount and insufficientaccuracy.

DISCLOSURE OF THE INVENTION

The present invention has been made in view of the above-mentionedcircumstances, and intends to make it possible to realize an increasedthroughput, a reduced data amount and as well as an increased accuracy.

A first information processing apparatus according to the presentinvention is characterized by including first detection means fordetecting from a fingerprint image first feature points which includeone of ridge bifurcations and ridge endings of a fingerprint; firstgeneration means for generating a triangle which connects threearbitrary points close to one another from among the plurality of firstfeature points; first calculation means for calculating an area and alength of each side of the triangle generated by the first generationmeans; and storage means for storing the area and the length of eachside of the triangle calculated by the first calculation means.

It is possible to further include a second detection means for detectinga center point which is a center of the fingerprint image; and a sortingmeans for sorting the first feature points on the basis of a distancebetween the center point detected by the second detection means and theplurality of first feature points; wherein the first generation meansuses the sorted first feature points to generate a triangle whichconnects three arbitrary points close to one another.

It is possible to have the first detection means further detect secondfeature points which are the other between the ridge bifurcations andthe ridge endings, and further include a second calculation means forcalculating at least one of a distance and a direction between a firstpoint and a fourth point which is the one of the second feature pointsthat is closest to the first point, at least either a distance and adirection between a second point and a fifth point which is the one ofthe second feature points that is closest to the second point, and atleast one of a distance and a direction between a third point and asixth point which is the one of the second feature points that is closetto the third point and the three first feature points which constitutethe one triangle are, respectively, the first point, the second pointand the third point; the storage means further store at least one of thedistance and the direction calculated by the second calculation means,between the first point and the fourth point, between the second pointand the fifth point, and between the third point and the sixth point.

It is possible to have a second detection means for detecting a centerpoint which is a center of the fingerprint image; and a sorting meansfor sorting the second feature points on the basis of a distancedetected by the second detection means, between the center point andeach of the plurality of first feature points; wherein the secondcalculation means calculates at least one of the distance and thedirection between the first point and the fourth point, between thesecond point and the fifth point, and between the third point and thesixth point by using the sorted second feature points.

It is possible to further have a second detection means for detectingthe first feature points of the fingerprint from the fingerprint imagesubject to collation; a second generation means for generating atriangle for connecting three arbitrary points close to one another fromamong the plurality of first feature points of the finger's fingerprintimage subject to collation; a second calculation means for calculatingan area and a length of each side of the triangle generated by thesecond generation means; and a comparison means for comparing an areaand a length of each side of the triangle stored in the storage meanswith the area and the length of each side of the triangle of thefingerprint image subject to collation calculated by the secondcalculation means.

A first information processing method according to the present inventionis characterized by having a first detection step of detecting from afingerprint image first feature points which are either ridgebifurcations and ridge endings of a fingerprint; a first generation stepof generating a triangle which connects three arbitrary points close toone another from among the plurality of first feature points; a firstcalculation step of calculating an area and a length of each side of thetriangle generated by the processing of the first generation step; and astorage control step of controlling storage of the area and the lengthof each side of the triangle calculated by the processing of the firstcalculation step.

A first program recorded on a recording medium characterized byincluding a first detection step of detecting from a fingerprint imagefirst feature points which are one of ridge bifurcations and ridgeendings of a fingerprint; a first generation step of generating atriangle which connects three arbitrary points close to one another fromamong the plurality of first feature points; a first calculation step ofcalculating an area and a length of each side of the triangle generatedby the processing of the first generation step; and a storage controlstep of controlling storage of the area and the length of each side ofthe triangle calculated by the processing of the first calculation step.

A program characterized by causing a computer to execute processingincluding a first detection step of detecting from a fingerprint imagefirst feature points which are one of ridge bifurcations and ridgeendings of a fingerprint; a first generation step of generating atriangle which connects three arbitrary points close to one another fromamong the plurality of first feature points; a first calculation step ofcalculating an area and a length of each side of the triangle generatedby the processing of the first generation step; and a storage controlstep of controlling storage of the area and the length of each side ofthe triangle calculated by the processing of the first calculation step.

A second information processing apparatus according to the presentinvention is characterized by including An information processingapparatus characterized by comprising: first detection means fordetecting first feature points which are either ridge bifurcations andridge endings of a fingerprint from a fingerprint image subject tocollation; first generation means for generating a triangle whichconnects three arbitrary points close to one another from among theplurality of first feature points; first calculation means forcalculating an area and a length of each side of the triangle generatedby the first generation means; and comparison means for comparing thearea and the length of each side of the triangle of the fingerprintimage subject to collation, which are calculated by the firstcalculation means, with an area and a length of each side of a triangleof a fingerprint image previously stored.

It is possible to have the first detection means to further detectsecond feature points which are the other one of the ridge bifurcationsand the ridge endings; and further include second calculation means forcalculating at least one of a distance or a direction between a firstpoint and a fourth point which is the one of the second feature pointsthat is closest to the first point, at least one of a distance and adirection between a second point and a fifth point which is the one ofthe second feature points that is closest to the second point, and atleast one of a distance and a direction between a third point and asixth point which is the one of the second feature points that isclosest to the third point, and the three first feature points whichconstitute the one triangle are, respectively, the first point, thesecond point and the third point; and the comparison means compare anarea and a length of each side of the triangle of the fingerprint imagesubject to collation, which are calculated by the first calculationmeans and the second calculation means, as well as at least one of thedistance and the direction of the fourth point relative to the firstpoint, of the fifth point relative to the second point, and of the sixthpoint relative to the third point, with an area and a length of eachside of the triangle of the stored fingerprint image as well as at leastone of the distance and the direction of the fourth point relative tothe first point, of the fifth point relative to the second point, and ofthe sixth point relative to the third point of the fingerprint imagesubject to collation.

A second information processing method according to the presentinvention is characterized by including a first detection step ofdetecting first feature points which are one of ridge bifurcations andridge endings of a fingerprint, from a fingerprint image subject tocollation; a first generation step of generating a triangle whichconnects three arbitrary points close to one another from among theplurality of first feature points; a first calculation step ofcalculating an area and a length of each side of the triangle generatedby the processing of the first generation step; and a comparison step ofcomparing the area and the length of each side of the triangle of thefingerprint image subject to collation, which are calculated by thefirst calculation means, with an area and a length of each side of atriangle of a fingerprint image previously stored.

A second program recorded in a recording medium according to the presentinvention is characterized by including a first detection step ofdetecting first feature points which are one of ridge bifurcations andridge endings of a fingerprint, from a fingerprint image subject tocollation; a first generation step of generating a triangle whichconnects three arbitrary points close to one another from among theplurality of first feature points; a first calculation step ofcalculating an area and a length of each side of the triangle generatedby the processing of the first generation step; and a comparison step ofcomparing the area and the length of each side of the triangle of thefingerprint image subject to collation, which are calculated by thefirst calculation means, with an area and a length of each side of atriangle of a fingerprint image previously stored.

A second program recorded according to the present invention ischaracterized by causing a computer to execute a first detection step ofdetecting first feature points which are one of ridge bifurcations andridge endings of a fingerprint, from a fingerprint image subject tocollation; a first generation step of generating a triangle whichconnects three arbitrary points close to one another from among theplurality of first feature points; a first calculation step ofcalculating an area and a length of each side of the triangle generatedby the processing of the first generation step; and a comparison step ofcomparing the area and the length of each side of the triangle of thefingerprint image subject to collation, which are calculated by thefirst calculation means, with an area and a length of each side of atriangle of a fingerprint image previously stored.

In the first invention of the present application, first feature pointswhich are either ridge bifurcations or ridge endings of a fingerprintare detected from a fingerprint image, a triangle which connects threearbitrary points close to one another from among the plurality of firstfeature points is generated, an area and a length of each side of thegenerated triangle is calculated, and the calculated area and length ofeach side of the triangle is stored.

In the second invention of the present application, first feature pointswhich are either ridge bifurcations or ridge endings of a fingerprintare detected from a fingerprint image, a triangle which connects threearbitrary points close to one another from among the plurality of firstfeature points is generated, and an area and a length of each side ofthe generated triangle is calculated, and the calculated area and lengthof each side of the triangle of the fingerprint image subject tocollation is compared with an area and a length of each side of atriangle of a fingerprint image previously stored.

BRIEF DESCRIPTION OF DRAWINGS

FIG. 1 is a perspective view showing the configuration of an externalappearance of one embodiment of a fingerprint collation apparatus towhich the present invention is applied;

FIG. 2 is a plan view for explaining the situation in which afingerprint reading sensor is pressed by a finger whose fingerprint isto be read;

FIG. 3 is a block diagram showing the configuration of the fingerprintcollation apparatus;

FIG. 4 is a cross-sectional view showing a theoretical configuration ofthe fingerprint reading sensor;

FIG. 5 is a circuit diagram showing the configuration of an internalcircuit of the fingerprint reading sensor;

FIG. 6 is a flowchart for explaining fingerprint registration processingin the fingerprint registration apparatus of FIG. 3;

FIG. 7 is a flowchart for explaining the fingerprint registrationprocessing in the fingerprint registration apparatus of FIG. 3;

FIG. 8 is a view showing an image example according to step S3 of FIG.6;

FIG. 9 is a view showing an image example according to step S4 of FIG.6;

FIG. 10 is a view showing an image example according to step S5 of FIG.6;

FIG. 11 is a view showing an image example according to step S6 of FIG.6;

FIG. 12 is a view showing an image example according to step S7 of FIG.6;

FIG. 13 is a view showing an image example according to step S14 of FIG.7;

FIG. 14 is a flowchart for explaining fingerprint collation processingin the fingerprint registration apparatus of FIG. 3;

FIG. 15 is a flowchart for explaining fingerprint collation processingin the fingerprint registration apparatus of FIG. 3;

FIG. 16 is a flowchart for explaining fingerprint collation processingin the fingerprint registration apparatus of FIG. 3;

FIG. 17 is a flowchart for explaining fingerprint collation processingin the fingerprint registration apparatus of FIG. 3;

FIG. 18 is a view showing an image example according to step S104 ofFIG. 14;

FIG. 19 is a view showing an image example according to step S105 ofFIG. 14;

FIG. 20 is a view showing an image example according to step S106 ofFIG. 14;

FIG. 21 is a view showing an image example according to step S107 ofFIG. 14;

FIG. 22 is a view showing another image example according to step S104of FIG. 14;

FIG. 23 is a view showing another image example according to step S105of FIG. 14;

FIG. 24 is a view showing another image example according to step S106of FIG. 14; and

FIG. 25 is a view showing another image example according to step S107of FIG. 14.

BEST MODES FOR CARRYING OUT THE INVENTION

FIG. 1 is a view showing the configuration of an external appearance ofone embodiment of a fingerprint collation apparatus to which the presentinvention is applied.

A fingerprint collation apparatus 1 includes a body section 11 whichconstitutes the enclosure of the apparatus, and a protection cover 12which is provided to freely open/close with respect to the body section11 and physically protects the top side of the body section 11 when in aclosed state. In FIG. 1, the protection cover 12 of the fingerprintcollation apparatus 1 is placed in an opened state with respect to thebody section 11.

Provided on the top side of the body section 11 are fingerprint readingsensor 21 and lamps 22 and 23 for indicating the result of collation ofa fingerprint.

The fingerprint reading sensor 21 reads as an image the fingerprint of afinger which is pressed into contact with the fingerprint reading sensor21.

In the situation shown in FIG. 1, as shown in FIG. 2, when thefingerprint reading sensor 21 is lightly pressed by a finger 41 having afingerprint to be read, the finger's fingerprint 41 is read as an image.

The lamp 22 and the lamp 23 are mutually exclusively turned on, therebyindicating whether fingerprint collation is possible. Each of the lamp22 and the lamp 23, when it is turned off, indicates that the finger 41is not in contact with the fingerprint reading sensor 21.

The fingerprint collation apparatus 1, as shown in FIG. 2, supplies dataindicative of the result of collation of the fingerprint to anotherapparatus which is not shown, via a cable 43 connected to a terminal 42.The cable 43 may be a cable based on, for example, a USB (UniversalSerial Bus) standard. It is a matter of course that the standard of thecable 43 may be another standard such as RS232C.

When this fingerprint collation apparatus 1 is to be carried, theprotection cover 12 is closed. Accordingly, the body section 11 and thelamp 22 and 23 for indication, particularly the fingerprint readingsensor 21, is protected from abnormal pressure applied from the outside,as well as from static electricity. Consequently, damage to ordestruction of the fingerprint collation apparatus 1 is prevented.

FIG. 3 is a block diagram showing the internal configuration of thefingerprint collation apparatus 1.

A fingerprint reading LSI (Large Scale Integrated circuit) 51 generatesa fingerprint image from a signal supplied from the fingerprint readingsensor 21, and supplies the generated fingerprint image to the CPU 52.

The CPU 52 controls the operation of the entire fingerprint collationapparatus 1. The CPU 52 also registers the fingerprint image suppliedfrom the fingerprint reading LSI 51, or matches the fingerprint image toa fingerprint registered previously.

A program RAM (Random Access Memory)/ROM (Read Only Memory) 53 includesa RAM and a ROM, and stores a fingerprint collation program which isfirmware to be executed by the CPU 52. The ROM section of the programRAM/ROM 53 stores a program and parameters which are basically fixed.The RAM section of the program RAM/ROM 53 stores parameters or datawhich vary according to the execution of the fingerprint collationprogram.

During registration of the fingerprint of a user, a flash memory 54stores data indicative of a feature amount extracted from an image ofthe fingerprint of the user, as a registered template. In other words,during the registration of the fingerprint, the CPU 52 stores into theflash memory 54 a registered template supplied from the fingerprintreading LSI 51 and extracted from the image of the fingerprint. Duringcollation of a fingerprint, the CPU 52 matches an image of a fingerprintsupplied from the fingerprint reading LSI 51 to the registered templatestored in the flash memory 54.

A USB controller 55 outputs, on the basis of the USB standard, a resultof fingerprint collation supplied from the CPU 52, to an externalapparatus, which is not shown, connected via the terminal 42, andacquires the ID (Identifier) of the user whose fingerprint is beingread, which ID is supplied from the external apparatus. The USBcontroller 55 supplied the acquired ID of the user to the CPU 52. Theuser ID is stored in the flash memory 54 as a registered template.

The fingerprint reading LSI 51, the flash memory 54, the program RAM/ROM53, the CPU 52 and the USB controller 55 are connected to one another bya bus 56.

A drive 57 is connected to the bus 56 as required. The drive 57 readsdata or a program recorded on a magnetic disc 71, an optical disc 72, amagneto-optical disc 73 or a semiconductor memory 74 which is loaded asrequired, and supplies the read data or program to the program RAM/ROM53 via the bus 56.

The fingerprint reading sensor 21 will be described below. As describedabove, the fingerprint reading sensor 21 reads a fingerprint image fromthe finger 41 brought in direct contact with a sensor surface, and canuse XXA3271GE made by Sony Corporation.

In the fingerprint reading sensor 21, the sensor surface is formed bydisposing an insulation film on the top surface of an array of metalelectrodes. When the finger is placed on the sensor surface of thefingerprint reading sensor 21, a capacitor is formed by threeconstituent elements, i.e., the metal electrodes, the insulation filmand the finger 41. In this case, the finger 41 functions as anelectrode.

The distance from a ridge section (electrode) of the finger'sfingerprint 41 to the metal electrodes of the fingerprint reading sensor21 is shorter than the distance from a valley section (electrode) of thefinger's fingerprint 41 to the metal electrodes of the fingerprintreading sensor 21. In addition, since the ridge section of the finger'sfingerprint 41 is brought into contact with the insulation film, thecapacitance value of the capacitor formed by the ridge section of thefinger's fingerprint 41 is approximately determined by the dielectricconstant of the insulation film.

On the other hand, in the valley section of the finger's fingerprint 41,an air layer is inserted between the finger 41 which is an electrode,and the insulation film, whereby the capacitance value of the capacitorformed by the valley section of the finger's fingerprint 41 largelydiffers from the capacitance value of the capacitor formed by the ridgesection of the finger's fingerprint 41.

Accordingly, the fingerprint reading sensor 21 converts to voltages acharge stored in the capacitor formed by the metal electrodes, theinsulation film and the ridge section of the finger's fingerprint 41 anda charge stored in the capacitor formed by the metal electrodes, theinsulation film and the valley section of the finger 41, therebyoutputting the unevenness of the fingerprint as an electrical signal.

FIG. 4 is a view showing a configuration showing a principle of thefingerprint reading sensor 21.

As shown in FIG. 4, the fingerprint reading sensor 21 has aconfiguration in which metal electrodes 103 (sampling points) arearranged in an array of pitch 80 μm on a silicon (Si) substrate 101 withan interlayer film 102 interposed therebetween, and the top surface ofthe array is covered with an insulation film (Over Coat) 104. Thefingerprint reading sensor 21 detects the unevenness of the finger'sfingerprint 41 which is directly placed on the top surface of theinsulation film 104.

In other words, because the finger 41 is a conductor, capacitors 106 areformed by the metal electrodes 103, the insulation film 104 and thefinger 41 when the finger 41 is placed on the top surface of theinsulation film 104. Thus, the capacitors 106 which have differentdistances from the finger 41 to the metal electrodes 103 are formedaccording to the unevenness of a ridge section 41A and a valley section41B of the fingerprint, so that the unevenness of the ridge section 41Aand the valley section 41B appears as the difference between thecapacitance values of the capacitors 106.

In addition, since the ridge section 41A of the fingerprint is incontact with the insulation film 104, the capacitance values of therespective capacitors 106 formed by the ridge section 41A are determinedby the dielectric constant of the insulation film 104 and the thicknessof the insulation film 104. On the other hand, in the valley section 41Bof the fingerprint, an air layer, in addition to the insulation film104, is inserted between the finger 41 which is an electrode, and themetal electrodes 103, whereby the capacitance values of the respectivecapacitors 106 formed by the valley section 41B are determined by thedielectric constant of the insulation film 104 and the thickness of theinsulation film 104 as well as the dielectric constant and the thicknessof air.

In other words, the capacitance values of the respective capacitors 106formed by the valley section 41B of the finger's fingerprint 41 largelydiffer from the capacitance values of the respective capacitors 106formed by the ridge section 41A of the finger's fingerprint 41.

Accordingly, when the finger 41 is in contact with the top surface(sensor surface) of the fingerprint reading sensor 21, if a constantvoltage is applied to the metal electrodes 103, the amount of chargestored in each of the capacitors 106 of the ridge section 41A of thefinger 41 differs from the amount of charge stored in each of thecapacitors 106 of the valley section 41B. The fingerprint reading sensor21 converts the charges stored in the respective capacitors 106 tovoltages, and outputs the unevenness of the fingerprint as an electricalsignal.

The operation of the fingerprint reading sensor 21 which converts theunevenness of the fingerprint as an electrical signal will be describedbelow. FIG. 5 is a circuit diagram showing an internal circuit of thefingerprint reading sensor 21.

The fingerprint reading sensor 21 includes a sensor section 21A whichdetects as a charge a capacitance value based on the unevenness of thefingerprint, a sense amplifier section 21B which converts the chargeoutputted from the sensor section 21A, and an output section 21C whichamplifies and outputs the voltage signal outputted from the senseamplifier section 21B.

In the fingerprint reading sensor 21, the sense amplifier section 21Bhas a differential amplifier 121 for converting a charge to a voltagesignal, and the output section 21C has a differential amplifier 122 foramplifying the voltage signal and a differential amplifier 123 foradjusting output impedance.

In addition, in FIG. 5, a capacitor Cs denotes any of the capacitors 106formed between the finger 41 and the metal electrodes 103. Thecapacitance of the capacitor Cs is hereinafter referred to simply as Cs.

A capacitor Cp of the sensor section 21A is a capacitor equivalent to aparasitic capacitance formed between the metal electrodes 103 and thedisplay panel 101. The capacitance of the capacitor Cp is hereinafterreferred to simply as Cp. The capacitor Cs and the capacitor Cp of thesensor section 21A are connected in series. The voltage at the point ofconnection between the capacitor Cs and the capacitor Cp is referred toas Vcel.

A capacitor Cp′ of the sense amplifier section 21B is a capacitance forcanceling the capacitance of the capacitor Cp due to parasiticcapacitance. One of the terminals of the capacitor Cp′ is grounded,while the other terminal of the capacitor Cp′ is connected to theinverting input terminal of the differential amplifier 121 via a switchSw3. The capacitance of the capacitor Cp′ is hereinafter referred tosimply as CP′. The capacitance of the capacitor Cp′ is approximatelyequal to the capacitance of the capacitor Cp.

One of the terminals of a capacitor Ch1 of the sense amplifier section21B is grounded, while the other terminal of the capacitor Ch1 isconnected to the output terminal of the differential amplifier 121 via aswitch Sw5 and is also connected to the inverting input terminal of thedifferential amplifier 122 via a switch Swe. One of the terminals of acapacitor Ch2 of the output section 21C is grounded, while the otherterminal of the capacitor Ch2 is connected to the output terminal of thedifferential amplifier 122 via a switch Sw7 and is also connected to thenon-inverting input terminal of the differential amplifier 123. Thecapacitor Ch1 of the sense amplifier section 21B and the capacitor Ch2of the output section 21C are so-called hold capacitors for holdingvoltages.

The capacitance of the capacitor Ch1 is hereinafter referred to as Ch1.The capacitance of the capacitor Ch2 is hereinafter referred to as Ch2.

In addition, one of the terminals of a capacitor Cf1 of the senseamplifier section 21B is connected to the inverting input terminal ofthe differential amplifier 121, while the other terminal of thecapacitor Cf1 is connected to the output terminal of the differentialamplifier 121. The capacitance of the capacitor Cf1 is a feedbackcapacitance which determines the gain of the differential amplifier 121.

The capacitance of the capacitor Cf1 is hereinafter referred to simplyas Cf1.

One of the terminals of a capacitor Cf2 of the output section 21C isconnected to the non-inverting input terminal of the differentialamplifier 122, while the other terminal of the capacitor Cf2 isconnected to the output terminal of the differential amplifier 122. Thecapacitance of the capacitor Cf2 is a feedback capacitance whichdetermines the gain of the differential amplifier 122. The capacitanceof the capacitor Cf2 is hereinafter referred to simply as Cf2.

A switch Swr of the sense amplifier section 21B connects or disconnectsthe point of connection between the capacitor Cs and the capacitor Cpand the non-inverting input terminal of the differential amplifier 121.The switch Swe of the sense amplifier section 21B connects ordisconnects the ungrounded terminal of the capacitor Ch1 and thenon-inverting input terminal of the differential amplifier 122.

In the sense amplifier section 21B, a voltage VH is applied to one ofthe terminals of a switch Sw1, while the other terminal is connected tothe non-inverting input terminal of the differential amplifier 121. Avoltage VM is applied to one of the terminals of a switch Sw2, while theother terminal is connected to the non-inverting input terminal of thedifferential amplifier 121. A voltage VL is applied to one of theterminals of a switch Sw11, while the other terminal is connected to thenon-inverting input terminal of the differential amplifier 121.

The voltage VH is higher than the voltage VM, and the voltage VM ishigher than the voltage VL. The difference between the voltage VH andthe voltage VM is nearly equal to the difference between the voltage VMand the voltage VL.

One of the terminals of the switch Sw3 is connected to the ungroundedterminal of the capacitor Cp′, while the other terminal of the switchSw3 is connected to the non-inverting input terminal of the differentialamplifier 121.

One of the terminals of a switch Sw4 is connected to one of theterminals of the capacitor Cf1, while the other terminal of the switchSw4 is connected to the other terminal of the capacitor Cf1. In otherwords, the switch Sw4 is connected in parallel with the capacitor Cf1.

One of the terminals of a switch Sw5 is connected to the output terminalof the differential amplifier 121, while the other terminal of theswitch Sw5 is connected to the ungrounded terminal of the capacitor Ch1and is also connected to the non-inverting input terminal of thedifferential amplifier 122 via the switch Swe.

One of the terminals of a switch Sw6 of the output section 21C isconnected to one of the terminals of the capacitor Cf2, while the otherterminal of the switch Sw6 is connected to the other terminal of thecapacitor Cf2. In other words, the switch Sw6 is connected in parallelwith the capacitor Cf2.

One of the terminals of a switch Sw7 of the output section 21C isconnected to the output terminal of the differential amplifier 122,while the other terminal of the switch Sw7 is connected to theungrounded terminal of the capacitor Ch2 and is also connected to thenon-inverting input terminal of the differential amplifier 123.

A voltage VOS is applied to the non-inverting input terminal of thedifferential amplifier 122.

The operation of the internal circuit of the fingerprint reading sensor21 will be described below.

The operation of the fingerprint reading sensor 21 is started when theswitch Swr, the switch Swe, the switch Sw1 and the switch Sw7 as well asthe switch Sw11 are open, i.e., off.

(1) First, from among the switch Swr, the switch Swe, the switch Sw1 andthe switch Sw7 as well as the switch Sw11 each of which is in itsinitial status, i.e., off, the switch Sw1, the switch Sw4 and the switchSwr are closed, i.e., turned on. Accordingly, the voltage Vcel at thepoint of connection between the capacitor Cs and the capacitor Cp is setto VH. At this time, the charge stored in each of the capacitor Cs andthe capacitor Cp becomes (Cs+Cp) VH.

(2) After that, the switch Sw1 and the switch Swr are turned off.

(3) Then, the switch Sw11 and the switch Sw3 are turned on, so that avoltage Vdmy at the point of connection between the capacitor Cp′ andthe switch Sw3 is set to VL. At this time, the charge stored in thecapacitor Cp′ becomes Cp′VL.

(4) After that, the switch Sw3 and the switch Sw11 are turned off.

(5) Then, the switch Sw2 is turned on, so that a voltage Vs1 applied tothe non-inverting input terminal of the differential amplifier 121 isset to VM.

(6) After that, the switch Sw4 is turned off.

(7) Then, the switch Swr, the switch Sw3 and the switch Sw5 are turnedon. At this time, the voltage Vcel is VH, the voltage Vdmy is VL, andthe voltage Vs1 applied to the non-inverting input terminal of thedifferential amplifier 121 is VM. Accordingly, a charge which isexpressed by expression (1) moves among the capacitor Cs, the capacitorCp and the capacitor Cp′: $\begin{matrix}{{{( {{Cs} + {Cp}} )( {{VH} - {VM}} )} - {{Cp}^{\prime}( {{VM} - {VL}} )}} \approx {{Cs}( {{VH} - {VM}} )}} & (1)\end{matrix}$Accordingly, an output voltage Vsns of the differential amplifier 121 isexpressed by expression (2):Vsns=VM−Cs(VH−VM)/Cf1  (2)

In this manner, the gain of the sense amplifier section 21B isdetermined without depending on the parasitic capacitance Cp formedbetween the metal electrode 103 and the display panel 101, whereby thedynamic range can be increased.

Then, the voltage Vsns found by expression (2) is applied to thecapacitor Ch1.

(8) After that, the switch Sw5 is turned off.

(9) Then, the switch Sw6 is turned off, and a voltage Voi on the inputside of the capacitor Cf2 (on the non-inverting input terminal side ofthe differential amplifier 122) is set to VOS.

(10) After that, the switch Sw6 is turned off.

(11) Then, the switch Swe and the switch Sw7 are turned on. A chargewhich moves from the capacitor Ch1 to the capacitor Cf2 at this time is(VOS-Vsns) Ch1. Accordingly, a voltage Voo on the output side of thecapacitor Cf2 (on the output terminal side of the differential amplifier122) is determined, and a charge is stored in the capacitor Ch2.

Then, this voltage Voo is outputted to an output terminal Aout via thedifferential amplifier 123 which is a buffer amplifier.

Fingerprint registration processing in the fingerprint collationapparatus 1 shown in FIG. 1 will be described below with reference tothe flowcharts of FIGS. 6 and 7. This processing is started when acommand to start fingerprint registration processing is entered by theuser and the finger of the user is pressed on the fingerprint readingsensor 21.

In step S1, the fingerprint reading sensor 21 reads an image of thefinger's fingerprint pressed in contact with the fingerprint readingsensor 21. Then, a signal corresponding to the read fingerprint issupplied to the fingerprint reading LSI 51.

In step S2, the fingerprint reading LSI 51 generates image data of thefingerprint from the signal corresponding to the fingerprint suppliedfrom the fingerprint reading sensor 21.

In step S3, the fingerprint reading LSI 51 converts the generated imagedata of the fingerprint to 256-level gray image data, and supplies theconverted 256-level gray image data to the CPU 52. Specifically, dataindicative of an image 200 having 128 pixels×128 pixels as shown in FIG.8 is acquired. An image 201 is an image having 96 pixels×96 pixels inthe image 200.

In step S4, the CPU 52 executes preprocessing, such as noise reductionand filling up small injuries in fingerprint ridges, on the convertedgray image data. An image from which noise is reduced as shown in FIG. 9is obtained as a preprocessed image.

In step S5, the CPU 52 binarizes the preprocessed gray image data with apredetermined threshold and converts the preprocessed gray image data tobinarized image data. FIG. 10 shows the binarized image.

In step S6, the CPU 52 performs thinning processing. Specifically, theCPU 52 performs the processing of extracting center lines each having aline width equivalent to one pixel, from sections represented by valuesof 1 in the binarized image data obtained by the processing of step S5.Accordingly, each of the line widths becomes equivalent to one pixel andconnectivity is retained, whereby ridge bifurcations and ridge endingsof fingerprint ridges become easy to detect in the subsequent step. Theimage which is thinned by the thinning processing of step S6 is as shownin FIG. 11.

In step S7, the CPU 52 detects a maximum of 10 ridge bifurcations and amaximum of 10 ridge endings from the thinned image. The ridgebifurcations and the ridge endings detected by the processing of step S7are as shown in FIG. 12. The ridge bifurcations and the ridge endingsare actually detected from the image 201 represented by 96 pixels×96pixels in the image 200 represented by 128 pixels×128 pixels in FIG. 12.In this manner, it is possible to decrease the number of ridgebifurcations and ridge endings to be extracted. In FIG. 12, ridgebifurcations P1 to P8 (eight) are detected, and the coordinates of therespective ridge bifurcations P1 to P8 are P1 (xp1, yp1), P2 (xp2, yp2),P3 (xp3, yp3), P4 (xp4, yp4), P5 (xp5, yp5), P6 (xp6, yp6), P7 (xp7,yp7) and P8 (xp8, yp8). In addition, ridge endings Q1 to Q10 (ten) aredetected, and the coordinates of the respective ridge endings Q1 to Q10are Q1(xq1, yq1), Q2(xq2, yq2), Q3(xq3, yq3), Q4(xq4, yq4), Q5(xq5,yq5), Q6(xq6, yq6), Q7(xq7, yq7), Q8(xq8, yq8), Q9(xq9, yq9) andQ8(xq10, yq10).

In this example, the CPU 52 detects a maximum of 10 ridge bifurcationsand a maximum of 10 ridge endings, but this example is not limitative.For example, each of the numbers of ridge bifurcations and ridge endingsto be detected may be set to a maximum limit determined in advance, orto 10 or more. In addition, the CPU 52 detects the ridge bifurcationsand the ridge endings from the image 201 represented by 96 pixels×96pixels, but this example is not limitative. For example, an image formedby 112 pixels×112 pixels may also be used.

In step S8, the CPU 52 causes the RAM section of the program RAM/ROM 53to store the coordinates (x, y) of the detected ridge bifurcations andridge endings (in other words, Pi(xpi, ypi) (where i=1, 2, . . . , 8),and Qi (xqi, yqi) (where i=1, 2, . . . , 10)). Since this storage istemporary, the coordinates are stored in the RAM section of the programRAM/ROM 53 (not in the flash memory 54).

In step S9, the CPU 52 detects a center point C (in, jn) which is thecenter of the registered image. Specifically, as shown in FIG. 12, thepoint where the center line of the vertical axis of the image 201intersects the center line of the horizontal axis of the same isdetermined as the center point. The center found in this step is not thecenter of the fingerprint but the center of the registered image, sothat the center can be found quickly and easily. In the case of thisexample, since the image 200 is represented by 128 pixels×128 pixels,the CPU 52 detects a preset point (64, 64) (or (63, 63)) as the centerpoint C.

In step S10, the CPU 52 calculates the distance between the center pointC (in, jn) found by the processing of step S9, which is the center ofthe registered image, and each of the plurality of ridge bifurcationsdetected by the processing of step S7. In the case of this example, thedistances between the center point C and the ridge bifurcations P1 to P8are respectively calculated. If the distance between the center point Cand the ridge bifurcation P1 is calculated as Lp1, the distance betweenthe center point C and the ridge bifurcation P2 is calculated as Lp2,and the distance between the center point C and the ridge bifurcation P3is calculated as Lp3. Subsequently, the respective distances between thecenter point C and P4, P5, . . . , P8 are sequentially calculated asLp4, Lp5, . . . , Lp8.

In step S11, the CPU 52 sorts the distances calculated by the processingof step S10 (the distances between the center point C and the respectiveridge bifurcations P1 to P8) in increasing order. In the case of thisexample, the distances from the center are sorted to beLp1<Lp2<Lp3<Lp4<Lp5<Lp6<Lp7<Lp8.

In step S12, the CPU 52 calculates the distance between the center pointC (in, jn) and each of the plurality of ridge endings detected by theprocessing of step S7. In the case of this example, the respectivedistances between the center point C and the ridge endings Q1 to Q10 arecalculated. If the distance between the center point C and the ridgeending Q1 is calculated as Lq1, the distance between the center point Cand the ridge ending Q2 is calculated as Lq2, and the distance betweenthe center point C and the ridge ending Q3 is calculated as Lq3.Subsequently, the respective distances between the center point C andQ4, Q5, . . . , Q10 are sequentially calculated as Lq4, Lq5, . . . ,Lq10.

In step S13, the CPU 52 sorts the distances calculated by the processingof step S12 (the distances between the center point C and the respectiveridge endings Q1 to Q10) in increasing order. In the case of thisexample, the distances from the center are sorted to beLq1<Lq2<Lq3<Lq4<Lq5<Lq6<Lq7<Lq8<Lq9<Lq10.

In step S14, the CPU 52 generates all triangles each connecting threepoints closest to one another among the ridge bifurcations (in the caseof this example, a maximum of 10 ridge bifurcations) which are close tothe center point C (in, jn) of the fingerprint (the central point foundby the processing of step S9). As mentioned above, in the case of thisexample, the CPU 52 generates all triangles each connecting three pointsclosest to one another among the maximum of 10 ridge bifurcations closeto the center point of the fingerprint. However, this example is notlimitative, and can also be modified according to the number of ridgebifurcations detected by the processing of step S7.

Specifically, the CPU 52 generates a triangle W1 as shown in FIG. 13 byconnecting the ridge bifurcation P1 (xp1, yp1) closest to the centerpoint C (in, jn) (the ridge bifurcation P1 is selected because thedistance Lp1 from the center point C is smallest) and two ridgebifurcations P2 (xp2, yp2) and P3 (xp3, yp3) closest to the ridgebifurcation P1.

After that, the CPU 52 generates a triangle by connecting the ridgebifurcation P2 (xp2, yp2) second closest to the center point C (theridge bifurcation P2 is selected because the distance Lp2 from thecenter point C is the second smallest) and two ridge bifurcations P1(xp1, yp1) and P3 (xp3, yp3) closest to the ridge bifurcation P2. In thecase of this example, this triangle is completely the same as theabove-mentioned triangle W1. In the following description, if completelythe same triangle is generated, the description thereof is omitted.

By sequentially repeating this process, a triangle W2 which connects theridge bifurcation P3 third closest to the center point C and two ridgebifurcations P2 and P4 closest to the ridge bifurcation P3, a triangleW3 which connects the ridge bifurcation P4 fourth closest to the centerpoint C and two ridge bifurcations P3 and P7 closest the ridgebifurcation P4, and a triangle W4 which connects the ridge bifurcationP5 fifth closest to the center point C and two ridge bifurcations P6 andP8 closest to the p5, are also generated, whereby a total of fourtriangles are generated. (The illustration of triangles which arerespectively generated on the basis of the ridge bifurcation P6 sixthclosest to the center point C, the ridge bifurcation P7 seventh closestto the center point C, and the ridge bifurcation P8 eighth closest tothe center point C is omitted, because each of the triangles issuperposed on any of the above-mentioned triangles W1, W2, W3 and W4.)

By generating each of the triangles in this manner on the basis of thecorresponding one of the ridge bifurcations and two ridge bifurcationsclosest to the corresponding one in order of increasing distance fromthe center, there may occur a case where, for example, the firsttriangle and the second triangle or the third triangle are formed bycompletely the same ridge bifurcations. This fact indicates that each ofthe triangles is generated on the basis of the corresponding one of theridge bifurcations and two ridge bifurcations closest to thecorresponding one in order from the ridge bifurcation closest to thecenter. Specifically, the triangle W1 generated by connecting the ridgebifurcation P1 (xp1, yp1) closest to the center point C (in, jn) and thetwo ridge bifurcations P2 (xp2, yp2) and P3 (xp3, yp3) closest to theridge bifurcation P1, and the triangle generated by connecting the ridgebifurcation P2 (xp2, yp) second closest to the center point C and thetwo ridge bifurcations P1 (xp1, yp1) and P3 (xp3, yp3) closest to theridge bifurcation P2 are each completely the same as the triangle W1,and these triangles can also be generated without omission.

In step S15, the CPU 52 calculates an area and a length of each side ofeach of the generated triangles. In the case of this example, the numberof the generated triangles is four (the triangles W1, W2, W3 and W4).(Actually, since superposed triangles are generated, four triangles ormore are formed, but in the case of this example, the number ofdifferent triangles is four.) As a result, the area and the length ofeach side of each of the four triangles are calculated. Accordingly, asto the triangle W1, an area S1 of the triangle W1, the distance betweenthe ridge bifurcation P1 and the ridge bifurcation P2 (this distance andother similar are hereinafter abbreviated as P1P2 and the like), theP2P3 distance and the P3P1 distance are calculated. As to the triangleW2, an area S2 of the triangle W2, the P2P3 distance, the P3P4 distanceand the P4P2 distance are calculated. As to the triangle W3, an area S3of the triangle W3, the P3P4 distance, the P4P7 distance, and the P7P3distance are calculated. As to the triangle W4, an area S4 of thetriangle W4, the P5P6 distance, the P6P8 distance, and the P8P5 distance(the length of each side) are calculated.

In step S16, the CPU 52 causes the flash memory 54 to store the area andthe length of each side of each of the triangles as a registeredtemplate. Since the registered template is a set of the areas and thelengths of the sides, the amount of data of the registered template issmall.

In step S17, the CPU 52 calculates the positions of ridge endingsclosest to the three points of each of the triangles. Specifically, inthe case of FIG. 13, since the ridge bifurcations which constitute thetriangle W1 are the ridge bifurcation P1, P2 and P3, the CPU 52 detectsthe ridge ending Q2 (xq2, yq2) closest to the ridge bifurcation P1, theridge ending Q1 (xq1, yq1) closest to the ridge bifurcation P2, and theridge ending Q1 (xq1, yq1) closest to the ridge bifurcation P3, andcalculates their directions and distances (the direction and thedistance of P1Q2, the direction and the distance of P2Q1, and thedirection and the distance of P3Q1). In the case of this example, adistance and a position are found as a position, but at least either onemay be found as a position. When this process is repeated, thedirections and distances (hereinafter referred to also as positions) ofP3Q1, P2Q1 and P4Q7 are found as to the triangle W2, the P3Q1, P4Q7 andP7Q7 positions are found as to the triangle W3, and the P5Q6, P6Q6 andP8Q6 positions are found as to the triangle W4.

In step S18, the CPU 52 associates the positions of the ridge endingsfound for each of the triangles by the processing of step S17 with thearea and the length of each side of the corresponding one of thetriangles (the area and the length of each side of each of the trianglesstored by the processing of step S16), and causes the flash memory 54 tostore the associated data a registered template. In the case of thisexample, as to each of the triangles W1, W2, W3 and w4, the length ofeach of the (three) sides (for example, in the case of W1, the P1P2length, the P2P3 length, and the P3P1 length), and the positions of eachof the ridge endings (in the case of W1, the P1Q2 length, the P2Q1length, and the P3Q1 length) are stored. In the case of this example,the P3Q1 position is found as to the triangle W1, and the P3Q1 positionis also found as to the triangle W2 (the positions of the same ridgeendings corresponding to the same ridge bifurcations are found), butcalculations may also be omitted as to the positions of the same points.

In step S19, the CPU 52 acquires via the USB controller 55 the ID of theuser whose fingerprint is being read, which ID is supplied from theexternal apparatus which is not shown, and associates the acquired IDwith the registered templates stored in the flash memory 54 (theregistered templates stored in the flash memory 54 by the processing ofsteps S16 and S18), and causes the flash memory 54 to store theassociated data.

Through the processing of FIGS. 6 and 7, the CPU 52 can cause the flashmemory 54 to store the area and the length of each side of each of theplurality of triangles extracted from the fingerprint image as well asthe positions (directions or distances) of the ridge endingscorresponding to (closest to) particular ridge bifurcations (ridgebifurcations which constitute each of the triangles) as the features ofthe fingerprint together with the ID of the user.

In addition, the processing of storing the ID of the user in step S19may also be performed in advance (before step S1) when the collationregistration processing is to be started.

Next, a fingerprint collation processing in the fingerprint collationapparatus 1 shown in FIG. 2 will be described below with reference tothe flowcharts of FIGS. 14 to 17. This processing is executed after thefingerprint registration processing of FIGS. 6 and 7, and is startedwhen the finger of the user is pressed on the fingerprint reading sensor21. Since the processing of steps S101 to S111 is approximately the sameas steps S1 to S13 of FIG. 6 mentioned above, steps S101 to S111 will bedescribed in brief.

In step S101, the fingerprint reading sensor 21 reads an image of thefinger's fingerprint pressed in contact with the fingerprint readingsensor 21, and supplies a signal corresponding to the read image of thefingerprint to the fingerprint reading LSI 51.

In step S102, the fingerprint reading LSI 51 generates image data of thefingerprint from the signal corresponding to the fingerprint suppliedfrom the fingerprint reading sensor 21.

In step S103, the fingerprint reading LSI 51 converts the generatedimage data of the fingerprint to 256-level gray image data, and suppliesthe converted 256-level gray image data to the CPU 52.

In step S104, the CPU 52 executes preprocessing, such as noise reductionand filling up small injuries in fingerprint ridges, on the convertedgray image data. Specifically, data indicative of an image 300 having128 pixels×128 pixels as shown in FIG. 18 is generated. An image 301 isan image having 96 pixels×96 pixels. The position of the fingerprint inthe gray image shown in FIG. 18 is deviated toward the top rightcompared to the gray image 200 of FIG. 9.

In step S105, the CPU 52 binarizes the preprocessed gray image data witha predetermined threshold and converts the preprocessed gray image datato binarized image data. FIG. 19 shows the binarized image.

In step S106, the CPU 52 performs thinning processing, whereby thebinarized image data is converted to the image shown in FIG. 20.

In step S107, the CPU 52 detects a maximum of 10 ridge bifurcations anda maximum of 10 ridge endings from the thinned image. The ridgebifurcations and the ridge endings detected by this processing are asshown in FIG. 21. The ridge bifurcations and the ridge endings areactually detected from the image 301 represented by 96 pixels×96 pixelsin the image 300 represented by 128 pixels×128 pixels in FIG. 21. InFIG. 21, ridge bifurcations Pb1 to Pb7 (seven) are detected, and ridgeendings Qb1 to Qb10 (ten) are detected.

In addition, in the case of this example, the CPU 52 detects a maximumof 10 ridge bifurcations and a maximum of 10 ridge endings, but thisexample is not limitative, like the processing of FIGS. 6 and 7mentioned above. For example, each of the numbers of ridge bifurcationsand ridge endings to be detected may be set to a maximum limitdetermined in advance, or to 10 or more. In addition, the CPU 52 detectsthe ridge bifurcations and the ridge endings from the image 301represented by 96 pixels×96 pixels, but this example is not limitative.For example, an image formed by 112 pixels×112 pixels may also be used.

When FIG. 13 is compared with FIG. 21, the ridge bifurcation P1 of FIG.13 corresponds to the ridge bifurcation Pb1 of FIG. 21, the ridgebifurcation P2 corresponds to the ridge bifurcation Pb2, the ridgebifurcation P3 corresponds to the ridge bifurcation Pb5, the ridgebifurcation P4 corresponds to the ridge bifurcation Pb7, the ridgebifurcation P5 corresponds to the ridge bifurcation Pb3, the ridgebifurcation P6 corresponds to the ridge bifurcation Pb4, and the ridgebifurcation P8 corresponds to the ridge bifurcation Pb6. In other words,FIG. 13 and FIG. 21 differ for the positions of the read images (theposition at which the user places the fingerprint varies each time), sothat the ridge bifurcation P7 detected in FIG. 13 is not detected inFIG. 21. In addition, the coordinates of a ridge bifurcation Pbi are theridge bifurcation Pbi(xpbi, ypbi) (where i=1, 2, . . . , 7), and thecoordinates of a ridge ending Qbi are the ridge ending Qbi (xqbi, yqbi)(where i=1, 2, . . . , 10).

In step S108, the CPU 52 causes the RAM section of the program RAM/ROM53 to store the coordinates (x, y) of the detected ridge bifurcationsand ridge endings (in other words, Pbi(xpbi, ypbi) (where i=1, 2, . . ., 7), and Qbi (xqbi, yqbi) (where i=1, 2, . . . , 10)). Since thisstorage is temporary, the coordinates are stored in the RAM section ofthe program RAM/ROM 53 (not in the flash memory 54).

In step S109, the CPU 52 detects a center point Cb (in, jn) of thefingerprint image. Since the image 300 is represented by 128 pixels×128pixels, the CPU 52 may detect a preset point (64, 64) (or (63, 63)) asthe center point similarly to the case of step S9 in FIG. 6 mentionedabove.

In step S110, the CPU 52 calculates the distance between the centerpoint Cb (in, jn) of the fingerprint image found by the processing ofstep S9 and each of the plurality of ridge bifurcations detected by theprocessing of step S107. In the case of this example, the distancesbetween the center point Cb and the ridge bifurcations Pb1 to Pb7 arerespectively calculated. If the distance between the center point Cb andthe ridge bifurcation Pb1 is calculated as Lpb1, the distance betweenthe center point Cb and the ridge bifurcation Pb2 is calculated as Lpb2,and the distance between the center point Cb and the ridge bifurcationPb3 is calculated as Lpb3. Subsequently, the respective distancesbetween the center point Cb and Pb4, Pb5, . . . , Pb7 are sequentiallycalculated as Lpb4, Lpb5, . . . , Lpb7.

In step S11, the CPU 52 sorts the distances calculated by the processingof step S110 (the distances between the center point Cb and therespective ridge bifurcations Pb1 to Pb7) in increasing order. In thecase of this example, the distances from the center are sorted to beLpb1<Lpb2<Lpb3<Lpb4<Lpb5<Lpb6<Lpb7.

In step S112, the CPU 52 calculates the distance between the centerpoint Cb (in, jn) and each of the plurality of ridge endings detected bythe processing of step S107. In the case of this example, the respectivedistances between the center point Cb and the ridge endings Qb1 to Qb10are calculated. If the distance between the center point Cb and theridge ending Qb1 is calculated as Lqb1, the distance between the centerpoint Cb and the ridge ending Qb2 is calculated as Lqb2, and thedistance between the center point Cb and the ridge ending Qb3 iscalculated as Lqb3. Subsequently, the respective distances between thecenter point Cb and Qb4, Qb5, . . . , Qb10 are sequentially calculatedas Lqb4, Lqb5, . . . , Lqb10.

In step S113, the CPU 52 sorts the distances calculated by theprocessing of step S12 (the distances between the center point C and therespective ridge endings Q1 to Q8) in increasing order. In the case ofthis example, the distances from the center are sorted to beLqb1<Lqb2<Lqb3<Lqb4<Lqb5<Lqb6<Lqb7<Lqb8<Lqb9<Lqb10.

In step S114, the CPU 52 detects a ridge bifurcation closest to thecenter point Cb (in, jn) of the fingerprint (the center point found bythe processing of step S109) and two ridge bifurcations closest to theridge bifurcations, and generates a triangle which connects these threepoints. Specifically, in the case of the example shown in FIG. 21, theCPU 52 generates a triangle Wb1 which connects the ridge bifurcation Pb1closest to the center point Cb, the ridge bifurcation Pb2 closet to theridge bifurcation Pb1, and the ridge bifurcation Pb5. In other words,the CPU 52 generates the triangle Wb1 by connecting the following threepoints, the ridge bifurcation Pb1 (xpb1, ypb1) closest to the centerpoint Cb (in, jn) (the ridge bifurcation Pb1 is selected because thedistance Lpb1 from the center point Cb is smallest), and two ridgebifurcations Pb2 (xpb2, ypb2) and Pb3 (xpb3, ypb3) closest to the ridgebifurcation Pb1.

In addition, in the case of the example shown in FIG. 21, the triangleW1 corresponds to the triangle Wb1, the triangle W2 corresponds to atriangle Wb3 (the triangle Wb3 is not generated in this flowchart, butwhen all triangles are generated, the triangle Wb3 is generated), andthe triangle W4 corresponds to a triangle Wb2 which will be describedlater. In other words, the triangle W3 of FIG. 13 is not generated inFIG. 21.

In step S115, the CPU 52 calculates an area Sb1 of the triangle Wb1generated by the processing of step S114 (the triangle Wb1 made of theridge bifurcations Pb1, Pb2 and Pb5).

In step S116, the CPU 52 causes the flash memory 54 to store theregistered templates stored in the flash memory 54.

In step S117, the CPU 52 determines whether the registered templatesstored in the flash memory 54 by the registered templates (thefingerprint registration processing) (the processing of FIGS. 6 and 7)contain a registered template having an area matching with the area Sb1of the triangle Wb1 calculated in step S115. Since fingerprints aredeformed to some extent by the influence of surrounding environments,physical conditions or the like, the CPU 52 sets an allowable range, andeven if the CPU 52 does not find a complete match but can find a valuewithin the allow range (in other words, smaller than a match threshold),the CPU 52 determines that the value is a match. In the case of thisexample, the triangle Wb1 of FIG. 21 corresponds to the triangle W1 ofFIG. 13 found by the processing of step S15 in FIG. 7, whereby the CPU52 determines that the area Sb1 is a match to the area S1.

If the CPU 52 determines in step S117 that there is a match to the areaSb1 of the triangle Wb1 (a triangle having an area matching with thearea Sb1 is contained in the registered templates), the CPU 52calculates the length of each side of the triangle Wb1 in step S118.Specifically, the Pb1Pb2 length, the Pb2Pb5 length and the Pb5Pb1 lengthare calculated. These lengths may also be calculated at the same time asthe area in step S114.

In step S119, the CPU 52 determines whether the lengths of three sidesconstituting the triangle registered in the registered templates (in thecase of this example, the triangle W1) which is determined to match bythe processing of step S117 match with the lengths of the three sidescalculated by the processing of step S118 (in the case of this example,the lengths of the three sides of the triangle Wb1). In the case of thisexample, the CPU 52 determines whether the P1P2 length, the P2P3 lengthand the P3P1 length which correspond to the triangle W1 (the lengths ofthe sides stored by the processing of step S16 in FIG. 7) respectivelymatch with the Pb1Pb2 length, the Pb2Pb5 length and the Pb5Pb1 length ofthe three sides calculated by the processing of step S118. As a matterof course, the CPU 52 sets an allowable range, and even if the CPU 52does not find a complete match but can find a value within the allowrange (in other words, smaller than a match threshold), the CPU 52determines that the value is a match. In the case of this example, sincethe ridge bifurcations P1, P2 and P3 which constitute the triangle W1respectively correspond to the ridge bifurcations Pb1, Pb2 and Pb3 whichconstitute the triangle Wb1, the CPU 52 determines that the ridgebifurcations P1, P2 and P3 respectively match with the ridgebifurcations Pb1, Pb2 and Pb3.

If it is determined in step S119 that the length of each of the threesides of a triangle is a match, in step S120, the CPU 52 searches forridge endings closest to three ridge bifurcations (in the case of thisexample, the ridge bifurcation Pb1, the ridge bifurcation Pb2 and theridge bifurcation Pb5) which constitute the triangle (in the case ofthis example, the triangle Wb1 generated by the processing of stepS114). In the case of this example, the ridge ending Qb3 (xqb3, yqb3)closest to the ridge bifurcation Pb1, the ridge ending Qb7 (xqb7, yqb7)closest to the ridge bifurcation Pb2, and the ridge ending Qb7 (xqb7,yqb7) closest to the ridge bifurcation Pb5 are searched for.

In step S121, the CPU 52 calculates the positions of the respectiveridge endings searched for by the processing of step S120. Specifically,the Pb1Qb3 position, the Pb2Qb7 position and the Pb5Qb7 position arecalculated.

The calculation of the lengths of the sides in step S118 and the searchfor and the calculation of the ridge endings in steps S120 and S121 canalso be collectively performed during the calculation of the areas instep S115. However, if the areas do not match, the subsequent twocalculations becomes unnecessary, and if the lengths of the sides do notmatch, the search for and the calculation of the ridge endings becomeunnecessary. Accordingly, the amount of calculation can be reduced bysequentially performing a calculation each time a decision is made as tothe previous condition, with the result that a rapid decision can beachieved.

In step S122, the CPU 52 compares the respective positions between thethree ridge bifurcations constituting the triangle determined to be amatch in the processing of step S117 and the ridge endings closest therespective ridge bifurcations, with the corresponding Pb1Qb3, Pb2Qb7 andPb5Qb7 positions which are calculated by the processing of step S121. Inthe case of this example, the positions between the three ridgebifurcations P1, P2 and P3 constituting the triangle W1, i.e., the P1Q2position, the P2Q1 position, and the P3Q1 position which are stored bythe processing of step S18 of FIG. 7, are respectively compared with thePb1Qb3 position, the Pb2Qb7 position and the Pb5Qb7 position which arecalculated by the processing of step S121.

In step S123, the CPU 52 determines whether the positions between threepoints constituting one of the triangles compared with each other in theprocessing of step S122 and the ridge endings closest to the respectivethree points match with the positions between three points constitutingthe other and the ridge endings closest to the respective three points.In the case of this example, the CPU 52 determines whether the P1Q2position, the P2Q1 position, and the P3Q1 position respectively matchwith the Pb1Qb3 position, the Pb2Qb7 position and the Pb5Qb7 position.Since Pb1Qb3, Pb2Qb7 and Pb5Qb7 found from the triangle Wb1 respectivelycorrespond to P1Q2, P2Q1 and P3Q1 found from the triangle W1, it isdetermined that a match is found. As a matter of course, it isdetermined that errors within a predetermined range (i.e., smaller thana match threshold) are matches. If it is determined that a match isfound, the process proceeds to step S124 and the CPU 52 adds 1 to acounter (increments the counter by 1). In the case of this example, thevalue of the counter (whose initial value is 0) is set to 1.

In step S125, the CPU 52 determines whether the value of the counter is2. The value of the counter is incremented when matches are found forthe area and the length of each side of one generated triangle as wellas all the positions between the ridge bifurcations and the ridgeendings. In the case of this example, since the value of the counter isset to 1 (authentication has succeeded as to the one triangle), the CPU52 determines in step S126 whether the next triangle can be generated.In other words, it is determined whether a triangle different from theso far generated triangles can be generated by connecting a ridgebifurcation second closest to the center point Cb and two ridgebifurcations closest to the ridge bifurcation. In the case of thisexample, the ridge bifurcation second closest to the center point Cb(the next to the ridge bifurcation P1 is P2 and a triangle to begenerated from the ridge bifurcation P2 is the same as the triangle Wb1,so that a new triangle cannot be generated. However, the triangle Wb2can be generated by using the ridge bifurcation P3 third closest to thecenter point Cb, so that it is determined that the next triangle can begenerated.

If it is determined in step S126 that the next triangle can begenerated, the CPU 52 proceeds to step S127 and generates the nexttriangle. In other words, since the ridge bifurcations Pb1 to Pb7 andthe ridge endings Qb1 to Qb10 is detected from FIG. 21 by the processingof step S107, the CPU 52 generates the triangle Wb2 which connects theridge bifurcation Pb3 third closest to the center point Cb and the tworidge bifurcations Pb4 and Pb6 closest to the ridge bifurcation Pb3,similarly to the case of the processing of step S14 of FIG. 6. Asmentioned above, in the processing of step S126, a triangle includingthe ridge bifurcation Pb2 second closest to the center point Cb is alsogenerated, but the triangle is the same as the triangle Wb1 because theridge bifurcation Pb2 and two ridge bifurcations closest to the ridgebifurcation Pb2 are the ridge bifurcations Pb1 and Pb5. Accordingly,after that, a triangle including the ridge bifurcation Pb3 third closestto the center point Cb is generated.

After that, the process returns to step S115 and the CPU 52 calculatesthe area the triangle generated by the processing of step S127 (in thecase of this example, Wb2) Subsequently, similar processing is repeated,and in the case of this example, since the triangle Wb2 corresponds tothe triangle W4 of FIG. 13 which is registered in the registeredtemplate, it is determined that in the processing of each of steps S117,S119 and S123, the answer is YES (a match is found).

Consequently, in step S124, 1 is incremented to the counter. In the caseof this example, the value of the counter is set to 2.

In step S125, the CPU 52 determines whether the value of the counter is2. In the case of this example, it is determined that the value of thecounter is 2 (because the triangle Wb1 matches with the triangle W1, andthe triangle Wb2 matches with the triangle W4). The fact that the valueof the counter is 2 indicates that the area and the length of each sideof each triangle as well as the positions between the ridge bifurcationsand the ridge endings completely match with those of the registeredtemplates as to two different triangles generated from the ridgebifurcations of the fingerprint image. If it is determined that thevalue of the counter is 2, the CPU 52 proceeds to step S129 and outputsa signal indicating that authentication has succeeded (in other words,the registered user and the user who is presently being collated matchwith each other), and brings the processing to an end. The result ofthis collation is indicated by the lamp 22 and the lamp 23 of the bodysection 11.

If it is determined in step S117 that the areas do not match, if it isdetermined in step S119 that the lengths do not match, if it isdetermined in step S123 that the positions of the ridge endings do notmatch, or if it is determined in step S125 that the value of the counteris not 2 (in other words, if it is determined that a match is not foundas to at least one element from among the area one triangle, the lengthof each side of the triangle and the positions between the ridgebifurcations and the ridge endings of the triangle), the CPU 52 proceedsto step S126 and determines whether the next triangle can be generated.The fact that the next triangle cannot be generated indicates that allthe ridge bifurcations Pb1 to Pb7 detected by the processing of stepS107 have been used to generate triangles which are not superposed onany of the triangles generated in the past. If it is determined that thenext triangle cannot be generated, the CPU 52 proceeds to step S128 andoutputs a signal indicating that authentication has failed (in otherwords, the registered user and the user who is presently being collateddo not match with each other), and brings the processing to an end. Theresult of this collation is indicated by the lamp 22 and the lamp 23 ofthe body section 11.

Through the processing of FIGS. 14 to 17, fingerprint collation can beperformed on the basis of the areas of the triangles found from theridge bifurcations, the lengths of the three sides of each of thetriangles and the positions of the ridge endings closest to therespective three ridge bifurcations. In addition, it is possible torapidly search for a matching registered template by finding the centerof the acquired fingerprint image and sequentially generating trianglesfrom the ridge bifurcations closest to the center.

When the user is to place the finger on the fingerprint reading sensor21, the user is to match the center of the finger with the center of thefingerprint reading sensor 21. Since the direction of the finger varieseach time, there is a higher possibility that an image at a positionfarther from the center becomes an image more different from theregistered image. Accordingly, in the case of a matching image, it ispossible to rapidly obtain a decision result indicative of a match bymaking decisions in order from the center.

In the case of different triangles, the possibility that their areasmatch with each other is low compared to the lengths of their sides andthe positions of their ridge endings. Accordingly, by making decisionsas to the areas in advance, it is possible to reduce the number ofunnecessary decisions and carry out a rapid decision.

The reason why it is assumed that authentication succeeds when allelements of two triangles match with one another (when the decisionresult is YES in step S125) (it is not assumed that authenticationsucceeds when all elements of all triangles match with one another) isthat the fingerprint image pressed on and acquired through thefingerprint reading sensor 21 undergoes a deviation of a maximum ofapproximately 3 mm (the fingerprint image easily varies each time thefinger is placed.) In other words, the reason is that when thefingerprint image undergoes a deviation, partly different triangles aregenerated (for example, in the case of the example of FIG. 21, atriangle corresponding to the triangle W3 of FIG. 13 is not generated).

For example, if the preprocessed gray image obtained in the processingof step S104 of FIG. 14 is an image such as that shown in FIG. 22 (as amatter of course, the image is fingerprint image data acquired from thesame finger), the image is largely deviated toward the bottom leftcompared to the registered image of FIG. 9 (the preprocessed gray imageacquired by the processing of step S4 of FIG. 6).

The gray image shown in FIG. 22 is converted as shown in FIG. 23 bybinarization processing (the processing of step S105), and is furtherconverted as shown in FIG. 24 by thinning processing (the processing ofstep S106). Then, the thinned image becomes as shown in FIG. 25 throughthe detection of ridge bifurcations and ridge endings (the processing ofstep S107). In FIG. 25, similarly to the case of FIG. 21, the ridgebifurcations are respectively set as Pb1 to Pb7 (in the case of theexample shown in FIG. 25, only seven ridge bifurcations are detected),and the ridge endings are respectively set as Qb1 to Qb10 and the centerpoint is set as Cb.

When FIGS. 13 and 25 are compared, the ridge bifurcation P1 of FIG. 13corresponds to the ridge bifurcation Pb3 of FIG. 25, the ridgebifurcation P2 corresponds to the ridge bifurcation Pb2, the ridgebifurcation P3 corresponds to the ridge bifurcation Pb1, the ridgebifurcation P4 corresponds to the ridge bifurcation Pb6, and the ridgebifurcation P7 corresponds to the ridge bifurcation Pb5. In other words,FIGS. 13 and 25 differ in the positions of the acquired images, so thatthe ridge bifurcation P5, the ridge bifurcation P6 and the ridgebifurcation P8 detected in FIG. 13 are not detected in FIG. 25. Instead,in FIG. 25, the ridge bifurcation Pb4 and the ridge bifurcation Pb7which are ridge bifurcations not detected in FIG. 13 are detected.

After having found the center point Cb of the recording medium interface(after the processing of step S109), or after having read the presetcenter point Cb set in advance, the CPU 52 sorts the distances betweenthe center point Cb and the ridge bifurcations Pb1 to Pb7 in increasingorder (step S111) and further sorts the distances between the centerpoint Cb and the ridge endings Qb1 to Qb10 in increasing order (stepS113), and generates triangles (the processing of step S114) In the caseof the example shown in FIG. 25, two triangles (the triangle Wb1 and thetriangle Wb2) are sequentially generated in step S114 or step S127. Inthe case of the example of FIG. 25, if all triangles that can begenerated are generated, five triangles are generated (as a matter ofcourse, triangles superposed on the respective five triangles are alsogenerated) in the following order: the triangle Wb1 which connects threepoints, i.e., the ridge bifurcation Pb1, the ridge bifurcation Pb2 andthe ridge bifurcation Pb6; the triangle Wb2 which connects three points,i.e., the ridge bifurcation Pb2, the ridge bifurcation Pb1 and the ridgebifurcation Pb3; the triangle Wb3 which connects three points, i.e., theridge bifurcation Pb4, the ridge bifurcation Pb5 and the ridgebifurcation Pb7; a triangle Wb4 which connects three points, i.e., theridge bifurcation Pb6, the ridge bifurcation Pb1 and the ridgebifurcation Pb5; and a triangle Wb5 which connects three points, i.e.,the ridge bifurcation pb7, the ridge bifurcation Pb5 and the ridgebifurcation Pb6. In other words, triangles corresponding to the triangleWb3 and the triangle Wb5 of FIG. 21 are not generated from thefingerprint image shown in FIG. 13 (in other words, since thecorresponding triangles are not registered in the registered templates,it is determined that a match is not found as to either the trianglesWb3 or Wb5.

As a result, accurate collation is realized by adopting the processingof determining that authentication has succeeded, when two triangleswhich are not all triangles but a plurality of the triangles, as shownin FIGS. 14 to 20. Conversely, if the number of triangles is made 1,there is a high risk that a finger of a third party is erroneouslyauthenticated.

The rate in which although a registered fingerprint is that of anauthorized person, the authorized person is not correctly collated iscalled FRR (False Rejection Rate), while the rate in which although aregistered fingerprint is that of an arbitrary unauthorized person, theunauthorized person is mistakenly collated is called FAR (FalseAcceptance Rate). A fingerprint collation apparatus having high FAR is afingerprint collation apparatus having a low security quality whichallows an unauthorized person to become an imposter of an authorizedperson.

FAR can be reduced by increasing a match threshold (by increasing therange of errors which can be regarded as matches, or by increasing areference value (two) of the number of matching triangles). However, inthis case, whether collation succeeds or fails is strongly affected byvariations in collation environments (for example, noise which enters anacquired fingerprint image), and there are more cases in whichauthorized persons are not collated (in other words, FRR becomeshigher), so that the convenience of users is lost. For this reason, thematch threshold need be set to a value which can balance both FRR andFAR.

In the above-mentioned processing, fingerprint collation is performed bydetecting ridge bifurcations and ridge endings of a fingerprint image,generating triangles each connecting three points close to the ridgebifurcations (or the ridge endings) on the basis of the distances fromthe center point of the fingerprint image, and registering the area andthe lengths of the three sides of each of the generated triangles aswell as the positions (distances or directions) between three ridgebifurcations and ridge endings closest to the respective three ridgebifurcations are registered. Accordingly, the amount of information tobe saved (registered template size) can be made extremely small comparedto conventional apparatuses, whereby the required memory capacity can bereduced.

In addition, since simple registered data (the areas of triangles, thelengths of the three sides of each of the triangles, and the positionsbetween three ridge bifurcations and ridge endings closest to therespective ridge bifurcations) are used, collation can be performed withsimple processing without the need to perform position or rotationcorrection of an image subject to collation. Accordingly, it is possibleto increase processing speed.

Furthermore, it is possible to increase the accuracy of fingerprintcollation.

In addition, the ridge bifurcations or the ridge endings are sorted onthe basis of the distances from the center point, and the ridgebifurcations or the ridge endings are searched for in the order of thesorted result, whereby it is possible to rapidly specify other closestridge bifurcations and ridge endings.

In addition, in the above-mentioned example, the distance and thedirection of each of ridge endings closest to three ridge bifurcationsare registered as a position and fingerprint collation is performed, butat least either the distance or the direction may also be registered.

Although the positions of ridge bifurcations and ridge endings of afingerprint image may also be sorted from the top left of the acquiredfingerprint image, the fingerprint image pressed on and acquired throughthe fingerprint reading sensor 21 undergoes a deviation of a maximum ofapproximately 3 mm (the fingerprint image easily varies each time thefinger is placed). For this reason, the center of the fingerprint imageis found and the positions of the ridge bifurcations and the ridgeendings relative to the center point are found, whereby it is possibleto easily search for a matching registered template.

In addition, in the above-mentioned example, a triangle is generatedfrom three ridge bifurcations, but a triangle may also be generated fromridge endings. In this case, triangles are generated from ridge endings,and the distances of sides constituting each of the triangles as well asthe positions between three ridge endings constituting each of thetriangles and ridge bifurcations closest to the respective three ridgeendings are found.

In addition, in the above-mentioned example, each triangle is generatedfrom three ridge bifurcations and is stored, but this configuration isnot limitative and polygons having four or more sides can also begenerated. The generation of triangles, however, makes it possible toreduce FAR and FRR far largely and realize most accurate and rapiddecisions.

The above-mentioned sequence of processing can be executed by hardware,and can also be executed by software. In the case where the sequence ofprocessing is executed by software, a program which constitutes thesoftware is installed from a recording medium into a computerincorporated in dedicated hardware, or into, for example, ageneral-purpose personal computer capable of executing various functionsby the installation of various kinds of programs.

This recording medium, as shown in FIG. 3, is made of a package mediumon which a program is recorded and which is distributed separately froma computer in order to provide the program for a user, for example, amagnetic disc 71 (including a flexible disc), an optical disc 72(including a CD-ROM (Compact Disc-Read Only Memory) or a DVD (DigitalVersatile Disc)), a magneto-optical disc 73 (including an MD (Mini-Disc)(trademark)), or a semiconductor memory 74. Otherwise, the recordingmedium is made of the program RAM/ROM 53, a hard disk drive or the likeon which a program is recorded and which is provided to a userincorporated in a computer.

The program for executing the above-mentioned sequence of processing, asrequired, may also be installed into a computer via a wired or wirelesscommunication medium such as a local area network, the Internet ordigital satellite broadcasting via an interface such as a router or amodem.

In the present specification, the steps which describe the programstored in the recording medium include not only processing which isperformed in the above-described order in a time-series manner, but alsoprocessing which is not necessarily processed in a time-series mannerbut is executed in parallel or individually.

INDUSTRIAL APPLICABILITY

As described above, according to the first invention, it is possible toreduce the amount of information to be used for fingerprint collation,and it is possible to reduce the size and the cost of a storageapparatus. Accordingly, the first invention can be applied to smallapparatuses.

According to the second invention, it is possible to perform fingerprintcollation. Among other thins, it is possible to perform fingerprintcollation with a small amount of information. It is also possible toincrease the processing speed of fingerprint collation. Furthermore, itis possible to increase the accuracy of fingerprint collation.

1. A fingerprint-processing information processing apparatuscharacterized by comprising: first detection means for detecting from afingerprint image first feature points which include one of ridgebifurcations and ridge endings of a fingerprint; first generation meansfor generating a triangle which connects three arbitrary points close toone another from among the plurality of first feature points; firstcalculation means for calculating an area and a length of each side ofthe triangle generated by the first generation means; and storage meansfor storing the area and the length of each side of the trianglecalculated by the first calculation means.
 2. The information processingapparatus as described in claim 1, further comprising: second detectionmeans for detecting a center point which is a center of the fingerprintimage; and sorting means for sorting the first feature points on thebasis of a distance between the center point detected by the seconddetection means and the plurality of first feature points; wherein thefirst generation means uses the sorted first feature points to generatea triangle which connects three arbitrary points close to one another.3. The information processing apparatus as described in claim 1,wherein: the first detection means further detects second feature pointswhich are the other between the ridge bifurcations and the ridgeendings, and further including second calculation means for calculatingat least one of a distance and a direction between a first point and afourth point which is the one of the second feature points that isclosest to the first point, at least either a distance and a directionbetween a second point and a fifth point which is the one of the secondfeature points that is closest to the second point, and at least one ofa distance and a direction between a third point and a sixth point whichis the one of the second feature points that is closet to the thirdpoint and the three first feature points which constitute the onetriangle are, respectively, the first point, the second point and thethird point; the storage means further stores at least one of thedistance and the direction calculated by the second calculation means,between the first point and the fourth point, between the second pointand the fifth point, and between the third point and the sixth point. 4.The information processing apparatus as described in claim 3, furthercomprising: second detection means for detecting a center point which isa center of the fingerprint image; and sorting means for sorting thesecond feature points on the basis of a distance detected by the seconddetection means, between the center point and each of the plurality ofsecond feature points; wherein the second calculation means calculatesat least one of the distance and the direction between the first pointand the fourth point, between the second point and the fifth point, andbetween the third point and the sixth point by using the sorted secondfeature points.
 5. The information processing apparatus as described inclaim 1, further comprising: second detection means for detecting thefirst feature points of the fingerprint from the fingerprint imagesubject to collation; second generation means for generating a trianglefor connecting three arbitrary points close to one another from amongthe plurality of first feature points of the finger's fingerprint imagesubject to collation; second calculation means for calculating an areaand a length of each side of the triangle generated by the secondgeneration means; and comparison means for comparing an area and alength of each side of the triangle stored in the storage means with thearea and the length of each side of the triangle of the fingerprintimage subject to collation calculated by the second calculation means.6. An information processing method characterized by comprising: firstdetection step of detecting from a fingerprint image first featurepoints which are either ridge bifurcations and ridge endings of afingerprint; first generation step of generating a triangle whichconnects three arbitrary points close to one another from among theplurality of first feature points; a first calculation step ofcalculating an area and a length of each side of the triangle generatedby the processing of the first generation step; and a storage controlstep of controlling storage of the area and the length of each side ofthe triangle calculated by the processing of the first calculation step.7. A computer-readable program recorded on a recording mediumcharacterized by comprising: first detection step of detecting from afingerprint image first feature points which are one of ridgebifurcations and ridge endings of a fingerprint; first generation stepof generating a triangle which connects three arbitrary points close toone another from among the plurality of first feature points; a firstcalculation step of calculating an area and a length of each side of thetriangle generated by the processing of the first generation step; and astorage control step of controlling storage of the area and the lengthof each side of the triangle calculated by the processing of the firstcalculation step. either
 8. A program characterized by causing acomputer to execute processing comprising: first detection step ofdetecting from a fingerprint image first feature points which are one ofridge bifurcations and ridge endings of a fingerprint; first generationstep of generating a triangle which connects three arbitrary pointsclose to one another from among the plurality of first feature points; afirst calculation step of calculating an area and a length of each sideof the triangle generated by the processing of the first generationstep; and a storage control step of controlling storage of the area andthe length of each side of the triangle calculated by the processing ofthe first calculation step.
 9. An information processing apparatuscharacterized by comprising: first detection means for detecting firstfeature points which are either ridge bifurcations and ridge endings ofa fingerprint from a fingerprint image subject to collation; firstgeneration means for generating a triangle which connects threearbitrary points close to one another from among the plurality of firstfeature points; first calculation means for calculating an area and alength of each side of the triangle generated by the first generationmeans; and comparison means for comparing the area and the length ofeach side of the triangle of the fingerprint image subject to collation,which are calculated by the first calculation means, with an area and alength of each side of a triangle of a fingerprint image previouslystored.
 10. The information processing apparatus as described in claim9, wherein: the first detection means further detects second featurepoints which are the other one of the ridge bifurcations and the ridgeendings; and further includes second calculation means for calculatingat least one of a distance or a direction between a first point and afourth point which is the one of the second feature points that isclosest to the first point, at least one of a distance and a directionbetween a second point and a fifth point which is the one of the secondfeature points that is closest to the second point, and at least one ofa distance and a direction between a third point and a sixth point whichis the one of the second feature points that is closest to the thirdpoint, and the three first feature points which constitute the onetriangle are, respectively, the first point, the second point and thethird point; and the comparison means compares an area and a length ofeach side of the triangle of the fingerprint image subject to collation,which are calculated by the first calculation means and the secondcalculation means, as well as at least one of the distance and thedirection of the fourth point relative to the first point, of the fifthpoint relative to the second point, and of the sixth point relative tothe third point, with an area and a length of each side of the triangleof the stored fingerprint image as well as at least one of the distanceand the direction of the fourth point relative to the first point, ofthe fifth point relative to the second point, and of the sixth pointrelative to the third point of the fingerprint image subject tocollation.
 11. A fingerprint-processing information processing methodcharacterized by comprising: a first detection step of detecting firstfeature points which are one of ridge bifurcations and ridge endings ofa fingerprint, from a fingerprint image subject to collation; a firstgeneration step of generating a triangle which connects three arbitrarypoints close to one another from among the plurality of first featurepoints; a first calculation step of calculating an area and a length ofeach side of the triangle generated by the processing of the firstgeneration step; and a comparison step of comparing the area and thelength of each side of the triangle of the fingerprint image subject tocollation, which are calculated by the first calculation means, with anarea and a length of each side of a triangle of a fingerprint imagepreviously stored.
 12. A recording medium recording a computer-readableprogram for fingerprint-processing, characterized by comprising:fingerprint-processing information processing method characterized bycomprising: a first detection step of detecting first feature pointswhich are one of ridge bifurcations and ridge endings of a fingerprint,from a fingerprint image subject to collation; a first generation stepof generating a triangle which connects three arbitrary points close toone another from among the plurality of first feature points; a firstcalculation step of calculating an area and a length of each side of thetriangle generated by the processing of the first generation step; and acomparison step of comparing the area and the length of each side of thetriangle of the fingerprint image subject to collation, which arecalculated by the first calculation means, with an area and a length ofeach side of a triangle of a fingerprint image previously stored.
 13. Afingerprint-processing computer-executable programfingerprint-processing program, characterized by comprising: a firstdetection step of detecting first feature points which are one of ridgebifurcations and ridge endings of a fingerprint, from a fingerprintimage subject to collation; a first generation step of generating atriangle which connects three arbitrary points close to one another fromamong the plurality of first feature points; a first calculation step ofcalculating an area and a length of each side of the triangle generatedby the processing of the first generation step; and a comparison step ofcomparing the area and the length of each side of the triangle of thefingerprint image subject to collation, which are calculated by thefirst calculation means, with an area and a length of each side of atriangle of a fingerprint image previously stored.